package com.bmadmin.service.impl;

import com.bmadmin.domain.DataQueryItemPOJO;
import com.bmadmin.domain.DataQueryItemVariablePOJO;
import com.bmadmin.domain.NormalResult;
import com.bmadmin.mapper.DataQueryItemPOJODao;
import com.bmadmin.service.DataQueryItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Created by 金玮良 on 2017-12-20.
 */
@Service
@Transactional
public class DataQueryItemServiceImpl implements DataQueryItemService{
    @Autowired
    DataQueryItemPOJODao dataQueryItemPOJODao;


    @Override
    public List<DataQueryItemPOJO> getDataQueryItemList(DataQueryItemPOJO dataQueryItemPOJO) {

        List<DataQueryItemPOJO> dataQueryItemPOJOS = dataQueryItemPOJODao.find(dataQueryItemPOJO);

        return dataQueryItemPOJOS;
    }

    @Override
    public NormalResult insertDataQueryItem(DataQueryItemPOJO dataQueryItemPOJO) {
        NormalResult result = new NormalResult();

        dataQueryItemPOJODao.insertSelective(dataQueryItemPOJO);

        List<DataQueryItemVariablePOJO> variablePOJOS=dataQueryItemPOJO.getVariables();
//        if(variablePOJOS.size()>0){
//            for(DataQueryItemVariablePOJO variableItem:variablePOJOS){
//                DataQueryItemVariablePOJO dataQueryItemVariablePOJO = new DataQueryItemVariablePOJO();
//                dataQueryItemVariablePOJO.setQ_id(dataQueryItemPOJO.getQ_id());
//                dataQueryItemVariablePOJO.setF_name(variableItem.getF_name());
//                dataQueryItemVariablePOJO.setV_name(variableItem.getV_name());
//                dataQueryItemVariablePOJO.setV_is_time(variableItem.getV_is_time());
//
//                dataQueryItemVariablePOJODao.insertSelective(dataQueryItemVariablePOJO);
//            }
//
//        }

        result.setCode("0000");
        result.setMsg("查询成功");

        return result;
    }

    @Override
    public NormalResult deleteDataQueryItem(DataQueryItemPOJO dataQueryItemPOJO) {
        NormalResult result = new NormalResult();

//        dataQueryItemVariablePOJODao.deleteByQ_id(dataQueryItemPOJO.getQ_id());
        dataQueryItemPOJODao.deleteByQ_id(dataQueryItemPOJO.getQ_id());

        result.setCode("0000");
        result.setMsg("删除成功");

        return result;
    }

    @Override
    public NormalResult updateDataQueryItem(DataQueryItemPOJO dataQueryItemPOJO) {
        NormalResult result = new NormalResult();

        DataQueryItemPOJO dataQueryItemForQueryName = new DataQueryItemPOJO();
        dataQueryItemForQueryName.setQ_name(dataQueryItemPOJO.getQ_name());

        List<DataQueryItemPOJO> dataQueryItemPOJOSResultForNames = dataQueryItemPOJODao.find(dataQueryItemForQueryName);
        if(dataQueryItemPOJOSResultForNames.size()>0){
            if(dataQueryItemPOJOSResultForNames.size()==1){
                if(!dataQueryItemPOJO.getQ_id().equals(dataQueryItemPOJOSResultForNames.get(0).getQ_id())){
                    result.setCode("9999");
                    result.setMsg("改查询名称已被使用，不能重复命名");
                    return result;
                }
            }
            else{
                result.setCode("9999");
                result.setMsg("改查询名称已被使用，不能重复命名");
                return result;
            }

        }

        dataQueryItemPOJODao.update(dataQueryItemPOJO);


        result.setCode("0000");
        result.setMsg("修改成功");

        return result;
    }
}
